/**
 * 3η ΓΕ 2013-2014 - Super Market
 * ΦΡΑΓΚΟΥΛΟΠΟΥΛΟΥ ΕΜΜΑΝΟΥΕΛΑ (69298)
 * ΧΑΛΔΑΣ ΧΑΡΑΛΑΜΠΟΣ (69305)
 * ΧΟΡΜΟΒΙΤΗΣ ΙΩΑΝΝΗΣ (69325)
 * ΧΟΥΣΤΟΥΛΑΚΗ ΕΥΑΓΓΕΛΙΑ (69327)
 */
package supermarket;

import javax.persistence.EntityManager;
import javax.swing.JOptionPane;
import static javax.swing.JOptionPane.WARNING_MESSAGE;

/**
 * EntityManagerFactory (Singleton pattern)
 */
public class EntityManagerFactory {
    
    private static EntityManager entityManager = null;
    
    /**
     * Kατά την 1η κλήση, δημιουργεί και επιστρέφει τον EntityManager
     * Στις επόμενες κλήσεις επιστρέφει τον EntityManager
     * @return EntityManager
     */
    public static EntityManager getEntityManager() {
        if (entityManager == null) {
            try {
                entityManager = javax.persistence.Persistence
                                .createEntityManagerFactory("SuperMarketPU")
                                .createEntityManager();
            }
            catch (Exception ex) {
                JOptionPane.showMessageDialog(null, 
                        "Παρουσιάστηκε πρόβλημα στη σύνδεση με τη database.",
                        "Πρόβλημα", WARNING_MESSAGE );
            }
        }
        return entityManager;
    }
}
